The recent past has seen an exponential growth in the number of online service providers. With the advent of smartphones and other portable devices, similar growth has been witnessed in the number of applications and application providers. Most of these applications solve only a portion of user needs and the user ends up having multiple applications installed to cater to all user needs (e.g., listening to music, purchasing movie tickets, event booking, gaming, flight reservations, restaurant searches, transportation, etc.) For example, the user may wish to purchase movies tickets for a Friday evening. To accomplish this task, the user launches FANDANGO. To reach the movie theater from home, the user may request a ride by launching UBER. Before or after the movie, the user may look for dining options by launching FOURSQUARE.
Further, users typically exhibit certain patterns in their life activity for a particular time of day or day in the week. Users may repeatedly use some applications or services based on these patterns of activity. For example, a user that has launched a music application (e.g., MICROSOFT GROOVE) may exhibit many different patterns. While commuting to work, the user may listen to a different genre of music than while at work, at the gym, at home while doing household chores, or at home before going to bed.
In an enterprise scenario, users use different applications depending on who they might be working with or meeting at a particular time. For example, a program manager may use ONENOTE for taking scrum notes when meeting with the development team. On the other hand, the same user may use POWERPOINT to present an executive summary when meeting with the leadership team. In another example, the user may use a camera application on a mobile device to whiteboard photographs for a discussion with the design team. As the examples illustrate, the user has to manually find each relevant application that is needed based on the current context.
In today's world users either organize applications manually by keeping the most used ones on their home screen, by grouping the applications into categories, or by using an application launcher that organizes applications based on most recent use or usage history. However, none of these solutions take into account the actual context of the user.